Conventionally, a database server is connected to one or more database clients. These clients communicate with the server, e.g. via a network or an inter-process communication. The clients access the server by issuing a request to the server. A request may comprise demands for reading and/or writing data to the server. The server may be a database server that comprises plural partitions. In this application, the term “database node” may be equally exchangeable to “database partition”, as known from the prior art. A coordinator node is a dedicated node which coordinates the execution of database workload across the complete set of nodes.
The user of the client usually demands virtually instant access to the database server in order to perform his tasks. However, plural instances may occur, in which the data transfer between server and client is not fast enough. In this case, the user may complain to the responsible database administrator about the lagging performance of the database. The database administrator must now locate in a reasonable amount of time the reasons for the performance problems of the database server and client connection. However, locating the source of the performance problems may be a serious challenge in a distributed network.
The lagging response time of the clients and servers may be due to several different reasons. In particular, the application, the application server, the driver, the network, the database and the operating system contribute to the response time. There exist a variety of dedicated tools for monitoring each of these layers, such as for monitoring the performance of the operating system, the network traffic, or the database itself. Yet when the layers are observed in isolation, a considerable amount of time has to be spent on manually consolidating the views of different tools. In case of an urgent problem, the database administrator must identify the root cause reliably and fast. In addition, both data streams from the server and client are de-coupled, hence they are recorded asynchronously. Furthermore, monitoring data that arrives at the monitoring server may be incomplete. Finally, the data streams may represent the client and server performance data with different granularity.